The present invention relates generally to data bases and more particularly, to a method of using a data dictionary to create a web-based database application.
A data dictionary is an electronic repository of information that describes many of the components of a database application. A data dictionary for web-based database applications may contain information describing one or more of the following: (1) the web application""s database structure (tables, fields, indices, and relationships), (2) database characteristics (required fields, field masks, etc), and (3) the web application""s components (menus, forms, reports, export formats, etc.). It may also contain information relating to (4) the text or images that are displayed on web forms and menus (for buttons, captions, labels, form titles, messages, etc.), (5) the fonts and colors used to display text on the web forms, (6) the location where the various items are to be displayed on the form, arid (7) programming code that is to be executed when the web application is run.
A web-based database application program consists of two primary components: (1) the xe2x80x9capplicationsxe2x80x9d component, which is responsible for running the database application, allowing users to enter information, view information, and select the records to be viewed, and (2) the xe2x80x9cdata dictionary maintenancexe2x80x9d component, which allows the system administrator to make changes to the application (application specifications, form captions, fields displayed, colors used, database structure, and other contents of the data dictionary).
Using a data dictionary as the underlying concept for a web-based database application provides many advantages. Some of these advantages include: (1) development of web-based database applications without needing a programmer or web developer; (2) minimal cost to set up a sophisticated, user-friendly web database application that typically includes forms for filtering, listing, and reviewing records in a database, menus, etc.; (3) the ability of a user to change the look and feel of the application pages without needing a programmer or web developer; and (4) various levels of security to limit who can review or change the data.
Web pages fall into two general categoriesxe2x80x94static and dynamic. Static web pages are presented to the user (after being interpreted by the user""s browser) without modification. These files generally contain only HTML codes, text, and graphics, and have the file extension of HTM or HTML. Examples include help text and menus. Dynamic web pages, on the other hand, have program code (or pseudo-code) imbedded in them which dynamically creates the HTML code that is sent to the browser. The program code can be used to retrieve data from a database, create HTML code for displaying the data in a table, etc.
Many internet sites currently host web-based database applications. At virtually all of these sites, the application is either provided by the user or the service provider. In both of these cases, a significant amount of programming is usually required for each web page that contains data which is extracted from a database in real-time. In order to reduce development time, many programmers use web-development tools which contain xe2x80x9cwizardsxe2x80x9d. Wizards are programs that create web pages based on information about the application that is provided by the developer when the xe2x80x9cwizardxe2x80x9d is run. There are two problems with this approach: (1) once the xe2x80x9cwizardxe2x80x9d is run, the user often has to make extensive changes to the code produced and (2) the information provided to the xe2x80x9cwizardxe2x80x9d is usually not saved; the developer must re-enter the data when re-running the xe2x80x9cwizardxe2x80x9d.
The present invention allows for web-based database applications to be run based on data in a data dictionary. A central web site contains both the application""s data and the data dictionary. The present invention includes the following steps and functions:
A central web site is set up with a data dictionary, a data base server, programs which produce menus and forms for a data base application, programs which produce menus and forms for the data dictionary maintenance procedures and a project directory.
The data dictionary contains information for both the data dictionary maintenance forms and sample application forms. The data base server may have new databases added to it. Programs which produce menus and forms for a database application and perform the functions needed to run the database application such as add, change, and delete records, perform data validation, etc. Programs which produce menus and forms for the data dictionary maintenance procedures perform the functions needed to update the data dictionary and change the application""s database structure. A project directory is created dynamically for each database application when a new database project is started.
A user opens a web page at a central web site and is led though a series of steps to create the database application. The invention allows for a database application to be created in one of three ways. The user may upload electronic data to a web site. A program on the web site creates a new database for the user and copies the data dictionary tables into the database. A second program on the web site reads the electronic data and updates the data dictionary with information about the database structure and requirements (e.g., table names and properties, field names and properties, index names and properties, relationships among the tables, etc). A third program on the web site then creates the application tables in the database. A fourth program reads the data uploaded by the user and populates the application tables in the database.
Alternatively, the web site may contain many sample database applications. The user selects one of the sample applications, and a program on the web site creates a new database application for the user.
In another alternative, the user may request that the system create empty database for the application. The user then uses the xe2x80x9capplication maintenancexe2x80x9d programs (see below) to create the application tables and fields.
In should be noted that for each of the three approaches described above, a program on the web site creates a directory on the web site for a user""s project and copies several files into the directory.
The user may start the database application by using a web browser to request a web page in the user""s project directory. The application allows the user to enter or change information, view information, select the records to be viewed, and exported, reported, or exported.
The present invention provides three methods used by a dynamic web page to create content used in the database application: (1) A program at the web site creates application-specific dynamic web pages based on the data about the application in the data dictionary (these pages are created in the user""s project directory whenever the structure of the database or application requirements change). These web pages do not need to refer to the data dictionary when the application is run. (2) The database application uses dynamic web pages which derive all of the information necessary to display the application""s web pages from the data dictionary associated with the application. For this method, a standard set of dynamic web pages in the user""s project directory read the data dictionary and dynamically create the application""s content. (3) A final method uses a combination of the previous twoxe2x80x94dynamic web pages are created specifically for the application, but these web pages still need to get information from the data dictionary when creating the web page displayed to the user.
An option in the database application allows the user to start the xe2x80x9capplication maintenancexe2x80x9d module. The programs in this module allow the user to upload additional data, update the data dictionary and change the database structure. This includes, but is not limited to, changing the text or images that are to be displayed on the web forms and menus (for buttons, captions, labels, form titles, messages, etc.); changing the fonts and colors to be used to display text on the web forms; where the various items are to be displayed on the form; and specifying programming code that is to be executed when the web application is run.